package com.fjj.cs.vo.request;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Data
public class AddUserByScanner {
    public static void main(String[] args) {
        int number = 0;
        List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(17);
list.add(19);
// 如果序列的第一个数字大于 1，则缺失的数字就是 1
        if (list.get(0) > 1) {
            number = 1;
        } else {
            // 二分查找法：检查缺失的数字
            int left = 0;
            int right = list.size() - 1;

            while (left < right) {
                int mid = left + (right - left) / 2;
                int expectedValue = list.get(0) + mid;

                if (list.get(mid) == expectedValue) {
                    // 如果当前值等于期望值，缺失的数字在右边
                    left = mid + 1;
                } else {
                    // 如果当前值小于期望值，缺失的数字在左边
                    right = mid;
                }
            }

            // 返回缺失的数字
            number = list.get(left - 1) + 1;
        }

// 如果列表中的最大数字小于最大范围，则返回下一个数字
        if (number == 0 && list.get(list.size() - 1) < 200) {
            number = list.get(list.size() - 1) + 1;
        }

// 输出结果
        System.out.println("First missing number: " + number);
    }

}
